package algo.sort;

public class Insertion<T extends Comparable<? super T>> extends Sort<T>{
    @Override
    public void sort(T[] nums) {
        for (int i=1, len=nums.length; i<len; ++i) {
            for (int j=i; j>0 && less(nums[j], nums[j-1]); --j) {
                swap(nums, j, j-1);
            }
        }
    }

    @Override
    public void sortDesc(T[] nums) {
        for (int i=1, len=nums.length; i<len; ++i) {
            for (int j=i; j>0 && greater(nums[j], nums[j-1]); --j) {
                swap(nums, j, j-1);
            }
        }
    }
}
